package com.safety.hat.service;

import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils;

import javax.websocket.Session;
import java.util.Objects;

/**
 * @Author: lijun
 * @Date: 2020/5/25 0:04
 */
public interface ISocketService<T> {

    /**
     * 处理消息
     *
     * @param message 消息体
     * @param session 当前Session
     */
    void handleMessage(T message, Session session);

    /**
     * 根据当前行为判断是否可以被处理
     *
     * @param act 行为 参数
     * @return 可以被处理 返回 true
     */
    boolean canHandle(String act);

    /**
     * 数据解析
     */
    default T transMessageToObject(String message) {
        if (StringUtils.isBlank(message)) {
            return null;
        }
        if (Objects.isNull(getMessageClass())) {
            return null;
        }
        return JSON.parseObject(message, getMessageClass());
    }

    default Class<T> getMessageClass() {
        return null;
    }

    /**
     * 删除信息
     */
    default void removeInfo(Session session) {

    }
}
    

